Eli Zaretskii [Fri, 8 Jan 2010 20:59:09 +0000 (15:59 -0500)]
Merge from mainline.
Jan D. [Fri, 8 Jan 2010 11:43:09 +0000 (12:43 +0100)]
* dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must
also be true before we can return early (bug #5339).
Jan D. [Fri, 8 Jan 2010 11:41:57 +0000 (12:41 +0100)]
Frame width was not updated in fullscreen when scroll bars where removed/added.
(change_frame_size_1): newwidth == FRAME_COLS (f) must
also be true before we can return early (bug #5339).
Jan D. [Fri, 8 Jan 2010 06:58:54 +0000 (07:58 +0100)]
Merge from trunk
Kenichi Handa [Fri, 8 Jan 2010 01:54:58 +0000 (10:54 +0900)]
international/fontset.el (build-default-fontset-data): Exclude characters in scripts kana, hangul, han, or cjk-misc.
Kenichi Handa [Fri, 8 Jan 2010 01:53:29 +0000 (10:53 +0900)]
from trunk
Kenichi Handa [Fri, 8 Jan 2010 01:46:22 +0000 (10:46 +0900)]
international/fontset.el (build-default-fontset-data): Exclude characters in scripts kana, hangul, han, or cjk-misc.
Kenichi Handa [Fri, 8 Jan 2010 00:46:18 +0000 (09:46 +0900)]
from trunk
Juanma Barranquero [Thu, 7 Jan 2010 22:46:44 +0000 (23:46 +0100)]
Fix bug#3224.
* vc-dir.el (vc-dir-prepare-status-buffer): Pass a (fake) filename
to `create-file-buffer' as it expects, not just a buffer name.
(vc-dir-mode): Include the buffer name in `list-buffers-directory',
to help uniquify.
Jan D. [Wed, 6 Jan 2010 19:43:11 +0000 (20:43 +0100)]
Fix slowdown and wrong font choosed by XSETTINGS changes. bug #5157.
* font.c (font_open_entity): Enable chache and call cached_font_ok
for the driver if defined.
(QCuser_spec): New symbol.
(font_spec_from_name): Save name as user-spec.
(font_load_for_lface): Keep user-spec instead of name.
(font_open_by_name): Save name as user-spec.
(syms_of_font): Initialize QCuser_spec.
* xftfont.c (xftfont_open): Call xftfont_add_rendering_parameters.
(xftfont_add_rendering_parameters, xftfont_cached_font_ok): New.
(syms_of_xftfont): Initialize xftfont_driver.cached_font_ok.
* font.h (struct font_driver): Add cached_font_ok.
* font-setting.el (font-setting-change-default-font): Use user-spec
instead of name.
Jan D. [Wed, 6 Jan 2010 19:42:27 +0000 (20:42 +0100)]
Merge from trunk
Jan D. [Wed, 6 Jan 2010 19:41:25 +0000 (20:41 +0100)]
Forgot one.
Jan D. [Wed, 6 Jan 2010 19:38:39 +0000 (20:38 +0100)]
Fix slowdown and wrong font choosed by XSETTINGS changes. bug #5157.
* font.c (font_open_entity): Enable chache and call cached_font_ok
for the driver if defined.
(QCuser_spec): New symbol.
(font_spec_from_name): Save name as user-spec.
(font_load_for_lface): Keep user-spec instead of name.
(font_open_by_name): Save name as user-spec.
(syms_of_font): Initialize QCuser_spec.
* xftfont.c (xftfont_open): Call xftfont_add_rendering_parameters.
(xftfont_add_rendering_parameters, xftfont_cached_font_ok): New.
(syms_of_xftfont): Initialize xftfont_driver.cached_font_ok.
* font.h (struct font_driver): Add cached_font_ok.
* font-setting.el (font-setting-change-default-font): Use user-spec
instead of name.
Chong Yidong [Wed, 6 Jan 2010 16:41:59 +0000 (09:41 -0700)]
NS fixes for Bug#3233.
* nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.
(Fns_display_usable_bounds): Rewrite, computing bounds properly
(Bug#3233).
Jan D. [Wed, 6 Jan 2010 16:04:19 +0000 (17:04 +0100)]
Merge from trunk
Jan D. [Wed, 6 Jan 2010 16:03:26 +0000 (17:03 +0100)]
Fixing user-spec for fonts instead of using name.
Jan D. [Wed, 6 Jan 2010 15:57:43 +0000 (16:57 +0100)]
xterm.c (x_clear_frame): Queue draw for scroll bars.
Jan D. [Wed, 6 Jan 2010 15:55:00 +0000 (16:55 +0100)]
xterm.c (x_clear_frame): Queue draw for scroll bars.
Dan Nicolaescu [Wed, 6 Jan 2010 15:11:52 +0000 (07:11 -0800)]
(vc-bzr-after-dir-status): Ignore pending merges.
Jan D. [Wed, 6 Jan 2010 14:33:57 +0000 (15:33 +0100)]
Merge from trunk.
Katsumi Yamaoka [Wed, 6 Jan 2010 09:22:19 +0000 (09:22 +0000)]
* gnus-art.el (gnus-article-describe-bindings): Work for prefix keys.
* message.el (message-check-news-header-syntax): Protect against a
string that `rfc822-addresses' returns when parsing fails.
Katsumi Yamaoka [Wed, 6 Jan 2010 09:16:36 +0000 (09:16 +0000)]
Merge from mainline.
Katsumi Yamaoka [Wed, 6 Jan 2010 00:07:08 +0000 (00:07 +0000)]
* gnus-util.el (gnus-invisible-p, gnus-next-char-property-change)
(gnus-previous-char-property-change): New functions.
* gnus-sum.el (gnus-forward-line-ignore-invisible): Use them.
Katsumi Yamaoka [Wed, 6 Jan 2010 00:00:28 +0000 (00:00 +0000)]
Merge from mainline.
Chong Yidong [Tue, 5 Jan 2010 22:11:04 +0000 (15:11 -0700)]
* progmodes/python.el (python-font-lock-keywords): Handle qualified decorators
(Bug#881).
Dan Nicolaescu [Tue, 5 Jan 2010 21:19:34 +0000 (13:19 -0800)]
(vc-bzr-working-revision): Fix looking for a revision
in a lightweight checkout.
Andreas Schwab [Tue, 5 Jan 2010 20:37:43 +0000 (21:37 +0100)]
Fix gnus-summary-recenter to properly handle invisible lines
* gnus-sum.el (gnus-forward-line-ignore-invisible): New function.
(gnus-summary-recenter): Use it instead of forward-line. (Bug#5257)
Jan D. [Tue, 5 Jan 2010 14:49:36 +0000 (15:49 +0100)]
Handle internal-border width changes when maximized. Bug #2568
* xterm.c (x_new_font): Move code for setting rows/cols before
resizing ...
(x_set_window_size): ... to here. bug #2568.
* gtkutil.c (xg_clear_under_internal_border): New function.
(xg_frame_resized, xg_frame_set_char_size): Call
xg_clear_under_internal_border.
(xg_update_scrollbar_pos): Clear under old scroll bar position.
Jan D. [Tue, 5 Jan 2010 14:42:39 +0000 (15:42 +0100)]
Merge from mainline.
Jan D. [Tue, 5 Jan 2010 14:30:22 +0000 (15:30 +0100)]
Remove fprintf
Jan D. [Tue, 5 Jan 2010 14:16:30 +0000 (15:16 +0100)]
Handle change of internal-border width when maximized.
* xterm.c (x_new_font): Move code for setting rows/cols before
resizing ...
(x_set_window_size): ... to here. bug #2568.
* gtkutil.c (xg_clear_under_internal_border): New function.
(xg_frame_resized, xg_frame_set_char_size): Call
xg_clear_under_internal_border.
(xg_update_scrollbar_pos): Clear under old scroll bar position.
Chong Yidong [Tue, 5 Jan 2010 14:04:04 +0000 (07:04 -0700)]
* keyboard.c (read_key_sequence): Catch keyboard switch after
making a new tty frame (Bug#5095).
Kenichi Handa [Tue, 5 Jan 2010 12:03:13 +0000 (21:03 +0900)]
language/indian.el (malayalam-composable-pattern): Fix ZWNJ and ZWJ.
Kenichi Handa [Tue, 5 Jan 2010 11:59:03 +0000 (20:59 +0900)]
language/indian.el (malayalam-composable-pattern): Fix ZWNJ and ZWJ.
Kenichi Handa [Tue, 5 Jan 2010 11:53:11 +0000 (20:53 +0900)]
fontset.c (fontset_find_font): Fix getting the frame pointer.
Kenichi Handa [Tue, 5 Jan 2010 11:49:19 +0000 (20:49 +0900)]
fontset.c (fontset_find_font): Fix getting the frame pointer.
Kenichi Handa [Tue, 5 Jan 2010 11:42:19 +0000 (20:42 +0900)]
merge from trunk
Dan Nicolaescu [Tue, 5 Jan 2010 07:46:35 +0000 (23:46 -0800)]
(vc-bzr-diff): Obey vc-disable-async-diff.
Stefan Monnier [Mon, 4 Jan 2010 18:18:38 +0000 (13:18 -0500)]
Avoid dubious uses of save-excursions.
* doc/lispref/positions.texi (Excursions): Recommend the use of
save-current-buffer if applicable.
* doc/lispref/text.texi (Clickable Text): Fix the example code which used
save-excursion in a naive way which sometimes preserves point and
sometimes not.
* doc/lispref/variables.texi (Creating Buffer-Local):
* doc/lispref/os.texi (Session Management):
* doc/lispref/display.texi (GIF Images):
* doc/lispref/control.texi (Cleanups): Use (save|with)-current-buffer.
* doc/misc/gnus.texi (Posting Styles): Use with-current-buffer.
* doc/misc/calc.texi (Defining Simple Commands): Prefer save-current-buffer.
Stefan Monnier [Mon, 4 Jan 2010 17:38:20 +0000 (12:38 -0500)]
(xd_remove_watch): Avoid trying to convert a void* to
Lisp_Object, preferring to convert a lisp_Object to a void* instead.
(Fdbus_init_bus): Use XHASH to get a scalar value from a Lisp_Object.
Dan Nicolaescu [Mon, 4 Jan 2010 06:40:30 +0000 (22:40 -0800)]
(vc-bzr-shelve-map): Change binding for vc-bzr-shelve-apply-at-point.
(vc-bzr-shelve-menu-map):
(vc-bzr-dir-extra-headers): Improve menu and tooltip text.
(vc-bzr-shelve-apply): Make prompt more explicit.
Stefan Monnier [Mon, 4 Jan 2010 05:35:18 +0000 (00:35 -0500)]
Register the fact that rmail-mbox-branch was merged (a long time ago)
Stefan Monnier [Mon, 4 Jan 2010 05:18:51 +0000 (00:18 -0500)]
Register the fact that multi-tty was merged (a long time ago)
Stefan Monnier [Mon, 4 Jan 2010 05:00:28 +0000 (00:00 -0500)]
Register the fact that gnus-5_10-branch was merged (a long time ago)
Stefan Monnier [Mon, 4 Jan 2010 04:50:31 +0000 (23:50 -0500)]
Register the fact that gerd_defvaralias was merged (a long time ago)
Dan Nicolaescu [Mon, 4 Jan 2010 04:43:23 +0000 (20:43 -0800)]
(vc-bzr-log-view-mode): Also highlight the author.
Dan Nicolaescu [Mon, 4 Jan 2010 04:35:21 +0000 (20:35 -0800)]
(vc-bzr-state-heuristic): Make it work for lightweight
checkouts. (Bug#618)
Michael Albinus [Sun, 3 Jan 2010 19:27:17 +0000 (20:27 +0100)]
* dbusbind.c (xd_add_watch): Improve debug message.
(xd_remove_watch): Improve debug message. If DATA is the session
bus, unset D-Bus session environment.
(Fdbus_init_bus): Pass the bus as argument to
dbus_connection_set_watch_functions. (Bug#5283)
Eli Zaretskii [Sun, 3 Jan 2010 18:18:21 +0000 (13:18 -0500)]
Update Copyright years.
Kevin Ryde [Sat, 2 Jan 2010 21:33:36 +0000 (23:33 +0200)]
eieio.texi (Naming Conventions): Correction to xref on elisp
coding conventions, is "Tips" node not "Standards".
Eli Zaretskii [Sat, 2 Jan 2010 20:31:41 +0000 (22:31 +0200)]
modes.texi (Example Major Modes): Fix indentation. (Bug#5195)
Chong Yidong [Sat, 2 Jan 2010 20:14:54 +0000 (15:14 -0500)]
* net/browse-url.el (browse-url-encode-url): Don't escape commas.
They are valid characters in URL paths (rfc3986), and at least
Firefox does not understand the encoded version (Bug#3166).
Chong Yidong [Sat, 2 Jan 2010 19:40:59 +0000 (14:40 -0500)]
Allow use of "end" keyword for terminating Octave-mode blocks.
* progmodes/octave-mod.el (octave-end-keywords)
(octave-block-begin-or-end-regexp, octave-block-match-alist): Add
"end" keyword (Bug#3061).
(octave-end-as-array-index-p): New function.
(calculate-octave-indent): Use it.
Chong Yidong [Sat, 2 Jan 2010 19:18:44 +0000 (14:18 -0500)]
Fix last change to message-exchange-point-and-mark.
* message.el (message-exchange-point-and-mark): Rework last change to
avoid using optional arg of exchange-point-and-mark, for backward
compatibility.
Karl Fogel [Sat, 2 Jan 2010 19:14:13 +0000 (14:14 -0500)]
* lisp/bookmark.el: Consistently put the text property on the bookmark name.
(bookmark-bmenu-marks-width): Bump back to 2, to include annotation marks.
(bookmark-bmenu-hide-filenames): Adjust for above, and put the text
property on the bookmark name, instead of not putting it at all.
(bookmark-bmenu-list): Fix where we put the text property.
Karl Fogel [Sat, 2 Jan 2010 19:03:25 +0000 (14:03 -0500)]
* lisp/bookmark.el: Ahh, remove silly debugging cruft, sorry for the noise.
Karl Fogel [Sat, 2 Jan 2010 18:57:02 +0000 (13:57 -0500)]
* lisp/bookmark.el (bookmark-bmenu-save): Just depend on the new logic
for showing buffer modified state (as added in the previous change).
Chong Yidong [Sat, 2 Jan 2010 18:55:19 +0000 (13:55 -0500)]
Consistently hex notation to represent character codes.
* nonascii.texi (Text Representations, Character Codes)
(Converting Representations, Explicit Encoding)
(Translation of Characters): Use hex notation consistently.
(Character Sets): Fix map-charset-chars doc (Bug#5197).
Karl Fogel [Sat, 2 Jan 2010 18:52:32 +0000 (13:52 -0500)]
* lisp/bookmark.el: Show modified state of bookmark buffer more accurately.
(bookmark-bmenu-list): Initialize buffer-modified-p properly.
(bookmark-send-edited-annotation): Mark bookmark-alist as modified.
(with-buffer-modified-unmodified): New macro.
(bookmark-bmenu-show-filenames, bookmark-bmenu-hide-filenames,
bookmark-bmenu-mark, bookmark-bmenu-unmark, bookmark-bmenu-delete):
Use new macro to preserve the buffer-modified state.
Karl Fogel [Sat, 2 Jan 2010 18:13:28 +0000 (13:13 -0500)]
* lisp/bookmark.el (bookmark-bmenu-select, bookmark-bmenu-1-window,
(bookmark-bmenu-2-window, bookmark-bmenu-this-window)
(bookmark-bmenu-other-window, bookmark-bmenu-switch-other-window)
(bookmark-bmenu-show-annotation, bookmark-bmenu-edit-annotation)
(bookmark-bmenu-rename, bookmark-bmenu-locate)
(bookmark-bmenu-relocate, bookmark-bmenu-goto-bookmark): Remove
unnecessary calls to `bookmark-bmenu-ensure-position'.
Eli Zaretskii [Sat, 2 Jan 2010 17:33:54 +0000 (19:33 +0200)]
emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Make
the lines in the generated doc string shorter. (Bug#4668)
Chong Yidong [Sat, 2 Jan 2010 16:13:22 +0000 (11:13 -0500)]
* lisp/net/rcirc.el: Add follow-link binding (Bug#4738).
Eli Zaretskii [Sat, 2 Jan 2010 15:57:35 +0000 (10:57 -0500)]
Continue working on handling of properties in bidi iteration.
Region display and extension seems to work.
Solved a crash in bidirectional display of etc/HELLO.
(HELLO display still not 100% OK, e.g. near Kannada.)
.gdbinit (pitx): Display some bidi information about the
iterator.
dispextern.h (BIDI_AT_BASE_LEVEL): Enclose definition in
parentheses.
xdisp.c (handle_stop_backwards): Save and restore it->current
and it->position, instead of expecting the caller to do that.
(next_element_from_buffer): When moving across stop_charpos,
record it in prev_stop. When IT_CHARPOS backs up, call
handle_stop_backwards only if above the base embedding level.
This solves the crash while displaying etc/HELLO in bidi mode.
Eli Zaretskii [Sat, 2 Jan 2010 10:57:50 +0000 (05:57 -0500)]
Merge from mainline.
Eli Zaretskii [Sat, 2 Jan 2010 10:42:11 +0000 (12:42 +0200)]
Rename cvs-update to bzr-update in lisp/ Makefiles.
Makefile.in (bzr-update): Renamed from cvs-update.
(cvs-update): New target for backward compatibility.
makefile.w32-in (bzr-update): Renamed from cvs-update.
(cvs-update): New target for backward compatibility.
Eli Zaretskii [Sat, 2 Jan 2010 10:22:05 +0000 (05:22 -0500)]
Merge from upstream.
Eli Zaretskii [Sat, 2 Jan 2010 09:44:51 +0000 (11:44 +0200)]
.bzrignore: Add 2 more patterns.
Eli Zaretskii [Sat, 2 Jan 2010 09:40:28 +0000 (11:40 +0200)]
.bzrignore: Add more ignored patterns, including for the MS-DOS build.
Karl Fogel [Sat, 2 Jan 2010 08:09:17 +0000 (03:09 -0500)]
* lisp/bookmark.el: Remove gratuitous gratitude.
Karl Fogel [Sat, 2 Jan 2010 07:08:02 +0000 (02:08 -0500)]
* lisp/bookmark.el (bookmark-bmenu-any-marks): New function
(bookmark-bmenu-save): Clear buffer modification if no marks.
Karl Fogel [Sat, 2 Jan 2010 05:00:55 +0000 (00:00 -0500)]
* lisp/bookmark.el (bookmark-bmenu-marks-width): Define to 1, not 2.
(bookmark-bmenu-list, bookmark-bmenu-bookmark): Calculate property
positions by using `bookmark-bmenu-marks-width', instead of hardcoding.
This fixes the `bookmark-bmenu-execute-deletions' bug reported here:
http://lists.gnu.org/archive/html/emacs-devel/2009-12/msg00819.html
From: Sun Yijiang <sunyijiang {_AT_} gmail.com>
To: emacs-devel {_AT_} gnu.org
Subject: bookmark.el bug report
Date: Mon, 28 Dec 2009 14:19:16 +0800
Message-ID: 5065e2900912272219y3734fc9fsdaee41167ef99ad7@mail.gmail.com
Karl Fogel [Sat, 2 Jan 2010 04:36:17 +0000 (23:36 -0500)]
* lisp/bookmark.el: Improvements suggested by Drew Adams:
(bookmark-bmenu-ensure-position): New name for
`bookmark-bmenu-check-position'. Just ensure the position;
don't return any meaningful value.
(bookmark-bmenu-header-height, bookmark-bmenu-marks-width): New constants.
Juanma Barranquero [Sat, 2 Jan 2010 01:09:11 +0000 (02:09 +0100)]
Fix typos.
Juanma Barranquero [Sat, 2 Jan 2010 01:06:31 +0000 (02:06 +0100)]
lisp/ChangeLog: Fix typos.
Juanma Barranquero [Sat, 2 Jan 2010 01:05:44 +0000 (02:05 +0100)]
lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero [Sat, 2 Jan 2010 01:03:48 +0000 (02:03 +0100)]
lisp/org/org.el: Fix typos in error messages.
Juanma Barranquero [Sat, 2 Jan 2010 01:03:11 +0000 (02:03 +0100)]
etc/NEWS: Fix typos.
Chong Yidong [Fri, 1 Jan 2010 22:10:50 +0000 (17:10 -0500)]
Fix buffer overflow in ns_get_color.
* nsterm.m (ns_get_color): Fix buffer overflow (Bug#4763).
Chong Yidong [Fri, 1 Jan 2010 20:42:22 +0000 (15:42 -0500)]
* lisp/gnus/message.el (message-exchange-point-and-mark): Call
exchange-point-and-mark with an argument rather than setting
mark-active by hand (Bug#5175).
Chong Yidong [Fri, 1 Jan 2010 20:03:37 +0000 (15:03 -0500)]
* lisp/files.el (minibuffer-with-setup-hook): Doc fix (Bug#5149).
Eli Zaretskii [Fri, 1 Jan 2010 19:30:06 +0000 (14:30 -0500)]
Merge from mainline.
Chong Yidong [Fri, 1 Jan 2010 18:44:02 +0000 (13:44 -0500)]
* lisp/ChangeLog: Update bug number in last change.
Chong Yidong [Fri, 1 Jan 2010 18:43:25 +0000 (13:43 -0500)]
* comint.el (comint-input-ring-size): Make it a defcustom and
increase the default to 500.
Chong Yidong [Fri, 1 Jan 2010 18:14:22 +0000 (13:14 -0500)]
* src/lread.c (syms_of_lread): Make it clearer that these are the
names of loaded files (Bug#5068).
* doc/lispref/loading.texi (Where Defined): Make it clearer that these
are loaded files (Bug#5068).
Chong Yidong [Fri, 1 Jan 2010 17:14:05 +0000 (12:14 -0500)]
* eval.c (run_hook_with_args): Handle the case where the global
value has the obsolete single-function form (Bug#5026).
Eli Zaretskii [Fri, 1 Jan 2010 15:17:13 +0000 (10:17 -0500)]
This commits the exact copies of files I had before switch to bzr.
Eli Zaretskii [Fri, 1 Jan 2010 15:04:53 +0000 (10:04 -0500)]
Retrospective commit from 2009-12-26.
Redesign handle_stop_backwards.
Fix character mirroring for non-ASCII characters.
xdisp.c (handle_stop_backwards): Call compute_stop_pos in the
loop, instead of calling handle_stop. Call handle_stop only once,
after the loop.
(next_element_from_buffer): Don't call handle_stop_backwards if at
stop position. If base_level_stop is zero, set it to 1.
term.c (append_glyph): Fill resolved_level and bidi_type slots
of struct glyph for unidirectional display.
xdisp.c (set_cursor_from_row): Handle zero-width characters.
bidi.c (bidi_mirror_char): More efficient code (suggested by
Ehud Karni <ehud@unix.mvs.co.il>). Don't even try to mirror
non-ASCII characters.
Eli Zaretskii [Fri, 1 Jan 2010 14:57:27 +0000 (09:57 -0500)]
Retrospective commit from 2009-1219.
Fix reordering of Arabic text in etc/HELLO.
Extend .gdbinit commands to support bidirectional display.
buffer.c (Fbuffer_swap_text): Swap the values of
bidi_display_reordering and bidi_paragraph_direction.
bidi.c (bidi_resolve_weak): Fix nesting of conditions for Wn
processing. Move W3 after W1 and W2. Simplify W4 because it is
now always after W1.
.gdbinit (pbiditype): New command.
(pgx): Use it to display bidi level and type of the glyph.
Eli Zaretskii [Fri, 1 Jan 2010 14:46:25 +0000 (09:46 -0500)]
Retrospective commit from 2009-12-12.
Begin working on faces support. First version of handle_stop_backwards.
Rearrange struct bidi_it for more efficient push/pop ops.
dispextern.h (struct it): New members prev_stop and
base_level_stop.
xdisp.c (handle_stop_backwards): New function.
(next_element_from_buffer): Handle the situation where we
overstepped stop_charpos due to non-linearity of the bidi
iteration. Likewise for when we back up beyond the previous
stop_charpos.
(reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.
dispextern.h (BIDI_AT_BASE_LEVEL): New macro.
bidi.c (bidi_copy_it): Fix compiler warning due to cast of a
pointer to `int'. Don't preserve the first_elt member, as it is
no longer copied, because its position in the structure was
changed, see below.
dispextern.h (struct bidi_it): Move first_elt, new_paragraph,
separator_limit, and paragraph_dir to after bidi_stack. Add a
note that anything beyond the level stack is not preserved when
the bidi iterator state is copied/saved.
Eli Zaretskii [Fri, 1 Jan 2010 12:01:23 +0000 (07:01 -0500)]
Retrospective commit from 2009-11-21.
Fix cursor positioning on empty lines with overlays.
xdisp.c (set_cursor_from_row): Fix cursor positioning on empty
lines when integer values of `cursor' property is used on display
strings.
Eli Zaretskii [Fri, 1 Jan 2010 11:57:39 +0000 (06:57 -0500)]
Retrospective commit from 2009-11-14.
Resurrect support for integer values of `cursor' property.
Rename paragraph-direction to bidi-paragraph-direction.
xdisp.c (init_iterator, text_outside_line_unchanged_p)
(try_window_id): Rename paragraph_direction to
bidi_paragraph_direction.
(set_cursor_from_row): Handle integer values of `cursor' property
on display strings.
buffer.c (init_buffer_once, syms_of_buffer): Rename
paragraph_direction to bidi_paragraph_direction.
buffer.h (struct buffer): Rename paragraph_direction to
bidi_paragraph_direction.
Eli Zaretskii [Fri, 1 Jan 2010 11:54:22 +0000 (06:54 -0500)]
Retrospective commit from 2009-11-07.
More fixes for iteration near ZV.
bidi.c (bidi_paragraph_init): Don't overstep end of buffer.
Treat end of buffer as a NEUTRAL_B character.
(bidi_resolve_explicit): Don't special-case ZV when bidi_it->type
is NEUTRAL_B, since bidi_set_paragraph_end no longer sets the
new_paragraph flag.
Eli Zaretskii [Fri, 1 Jan 2010 11:49:38 +0000 (06:49 -0500)]
Retrospective commit from 2009-10-31.
Continue debugging set_cursor_from_row.
Continue debugging display of R2L glyph rows.
xdisp.c (display_line): Always extend reversed_p rows to the end
of line.
(set_cursor_from_row): In R2L rows that don't display text, put
the cursor on the rightmost glyph.
Eli Zaretskii [Fri, 1 Jan 2010 11:45:36 +0000 (06:45 -0500)]
Retrospective commit from 2009-10-24.
Continue working on set_cursor_from_row.
Cleanup of resolved_level and bidi_type members of struct glyph.
xdisp.c (set_cursor_from_row): Fix off-by-one error when
skipping over non-character glyphs at end of a reversed row.
dispextern.h (struct glyph): The `resolved_level' member needs
only 5 bits, not 6. The `bidi_type' member needs only 3 bits.
(bidi_type_t): Rearrange so that types that can appear in the
resolved type are at the beginning and have values less than 8.
bidi.c: Include setjmp.h.
Eli Zaretskii [Fri, 1 Jan 2010 11:39:56 +0000 (06:39 -0500)]
Retrospective commit from 2009-10-17.
Continue working on display of R2L glyph rows. Reverse glyphs in
term.c:append_glyph rather than in extend_face_to_end_of_line.
Fix bidi iteration near BEGV and ZV.
dispextern.h (struct glyph): New members resolved_level and
bidi_type.
xdisp.c (append_glyph, append_composite_glyph)
(produce_image_glyph, append_stretch_glyph): Set them.
term.c (append_glyph): Ditto.
xdisp.c (display_line, next_element_from_buffer): Set the glyph
row's reversed_p flag if the paragraph base direction is odd.
(extend_face_to_end_of_line): Don't reverse the glyphs here.
term.c (append_glyph): Reverse glyphs here.
bidi.c (bidi_get_next_char_visually): Don't exit early when at ZV.
(bidi_paragraph_init): Don't step over a newline if at BEGV.
(bidi_paragraph_init): Handle empty buffers.
Eli Zaretskii [Fri, 1 Jan 2010 11:35:03 +0000 (06:35 -0500)]
Retrospective commit from 2009-10-10.
Continue working on set_cursor_from_row.
Disable redisplay optimizations that interfere with R2L glyph rows.
Misc cleanups in bidi.c.
xdisp.c (set_cursor_from_row): Skip over glyphs near end of row
with integer OBJECT even if their CHARPOS is zero.
bidi.c (bidi_cache_iterator_state): Don't cache NEW_PARAGRAPH.
Abort if someone tries to add a cached state whose position is not
the immediate successor to that of the last cached state.
(bidi_paragraph_init): Don't bail out too early after a reseat.
xdisp.c (text_outside_line_unchanged_p, try_window_id): Disable
optimizations if we are reordering bidirectional text and the
paragraph direction can be affected by the change.
Eli Zaretskii [Fri, 1 Jan 2010 11:27:51 +0000 (06:27 -0500)]
Retrospective commit from 2009-10-08.
Finish up working on paragraph's base direction.
Start working on display of right-to-left glyph rows.
Rewrite set_cursor_from_row to support bidi.
xdisp.c (string_buffer_position_lim): New function.
(string_buffer_position): Most of code moved to
string_buffer_position_lim. Last argument and return value are
now EMACS_INT; all callers changed.
(set_cursor_from_row): Rewritten to support bidirectional text and
reversed glyph rows.
dispextern.h <string_buffer_position>: Update prototype.
bidi.c (bidi_paragraph_init): Fix initialization of POS.
dispextern.h (struct glyph_row): New member reversed_p.
buffer.c (syms_of_buffer): Remove DEFVAR_LISP_NOPRO for
default-direction-reversed, default-bidi-display-reordering, and
default-paragraph-direction.
Eli Zaretskii [Fri, 1 Jan 2010 11:22:52 +0000 (06:22 -0500)]
Retrospective commit from 2009-10-05.
Continue working on paragraph base direction.
Support per-buffer default paragraph direction.
buffer.h (struct buffer): New member paragraph_direction.
buffer.c (init_buffer_once): Initialize it.
(syms_of_buffer): Declare Lisp variables
default-paragraph-direction and paragraph-direction.
dispextern.h (struct it): New member paragraph_embedding.
xdisp.c (init_iterator): Initialize it from the buffer's value
of paragraph-direction.
<Qright_to_left, Qleft_to_right>: New variables.
(syms_of_xdisp): Initialize and staticpro them.
(set_iterator_to_next, next_element_from_buffer): Use the value of
paragraph_embedding to determine the paragraph direction.
bidi.c (bidi_line_init): Fix second argument to
bidi_set_sor_type.
(bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
(bidi_get_next_char_visually): Record the last character of the
separator in separator_limit, not the character after that.
(bidi_find_paragraph_start): Accept character and byte positions
instead of the whole iterator stricture. All callers changed.
Eli Zaretskii [Fri, 1 Jan 2010 11:17:13 +0000 (06:17 -0500)]
Retrospective commit from 2009-10-04.
Continue working on determining paragraph's base direction.
bidi.c (bidi_at_paragraph_end): Check for paragraph-start if
paragraph-separate failed to match. Return the length of the
matched separator.
(bidi_line_init): New function.
(bidi_paragraph_init): Use bidi_line_init. Do nothing if in the
middle of a paragraph-separate sequence. Don't override existing
paragraph direction if no strong characters found in this
paragraph. Set separator_limit according to what
bidi_at_paragraph_end returns. Reset new_paragraph flag when a
new paragraph is found.
(bidi_init_it): Reset separator_limit.
dispextern.h (struct bidi_it): New member separator_limit.
bidi.c (bidi_find_paragraph_start): Return the byte position of
the paragraph beginning.
xdisp.c (set_iterator_to_next): Call bidi_paragraph_init if the
new_paragraph flag is set in the bidi iterator.
bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start): Use
the buffer-local value of paragraph-start and paragraph-separate.
Eli Zaretskii [Fri, 1 Jan 2010 11:06:48 +0000 (06:06 -0500)]
Retrospective commit from 2009-10-03.
Detect paragraph start and paragraph separators (part of determining
paragraph base direction).
(The commit of window.h belongs to the original changes by Kenichi Handa,
it was forgotten earlier.)
bidi.c (bidi_set_paragraph_end): Don't set the new_paragraph
flag in the iterator.
(bidi_init_it): Set the new_paragraph flag.
(bidi_at_paragraph_end): Arguments are now character and byte
position of the next character. All callers changed.
(bidi_resolve_explicit): Don't call bidi_at_paragraph_end, and
don't behave as if at paragraph end if it returns true.
(bidi_get_next_char_visually): Don't call bidi_paragraph_init if
new_paragraph flag is set. Set new_paragraph flag when at end of
a paragraph.
<fallback_paragraph_start_re, fallback_paragraph_separate_re>: New
variables.
<Qparagraph_start, Qparagraph_separate>: New variables.
(bidi_initialize): Initialize and staticpro them.
dispextern.h <struct bidi_it>: New element paragraph_dir. Make
positional elements EMACS_INT.
bidi.c <bidi_overriding_paragraph_direction>: Delete.